home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Softshoe / Lisa's Mac Parts / Views / View Options / SuggestsPaneSize.h < prev   
Text File  |  2000-06-23  |  2KB  |  85 lines

  1. // SuggestsPaneSize.h
  2.  
  3. #ifndef SuggestsPaneSize_h
  4. #define SuggestsPaneSize_h
  5.  
  6. #ifndef Range_h
  7. #include "Range.h"
  8. #endif
  9. #ifndef Point32_h
  10. #include "Point32.h"
  11. #endif
  12.  
  13. class SuggestsPaneSize
  14.   {        
  15.     protected:
  16.         ~SuggestsPaneSize()                        {}
  17.         
  18.     public:
  19.         virtual int32 MinimumWidth() const;
  20.         virtual int32 MinimumHeight() const;
  21.  
  22.         virtual int32 MaximumWidth() const;
  23.         virtual int32 MaximumHeight() const;
  24.  
  25.         virtual int32 ReasonableWidth() const;
  26.         virtual int32 ReasonableHeight() const;
  27.  
  28.         // The bounds ranges are to be interpreted weakly:
  29.         // bounds.Start() <= result <= bounds.End().
  30.         
  31.         virtual int32 BestWidth( Range32 bounds ) const;
  32.         virtual int32 BestHeight( Range32 bounds ) const;
  33.     
  34.         virtual int32 BestRevealedWidth( Range32 bounds ) const;
  35.         virtual int32 BestRevealedHeight( Range32 bounds ) const;
  36.         
  37.         virtual int32 BestRevealedLeft( Range32 bounds ) const;
  38.         virtual int32 BestRevealedTop( Range32 bounds ) const;
  39.         
  40.         Point32 MinimumSize() const
  41.           {
  42.             return Point32( MinimumWidth(),
  43.                                  MinimumHeight() );
  44.           }
  45.         
  46.         Point32 MaximumSize() const
  47.           {
  48.             return Point32( MaximumWidth(),
  49.                                  MaximumHeight() );
  50.           }
  51.         
  52.         Point32 ReasonableSize() const
  53.           {
  54.             return Point32( ReasonableWidth(),
  55.                                  ReasonableHeight() );
  56.           }
  57.         
  58.         Point32 BestSize( Range32 horizontal,
  59.                                 Range32 vertical ) const
  60.           {
  61.             return Point32( BestWidth( horizontal ),
  62.                                  BestHeight( vertical ) );
  63.           }
  64.         
  65.         Point32 BestRevealedSize( Range32 horizontal,
  66.                                           Range32 vertical ) const
  67.           {
  68.             return Point32( BestRevealedWidth( horizontal ),
  69.                                  BestRevealedHeight( vertical ) );
  70.           }
  71.         
  72.         Point32 BestRevealedPosition( Range32 horizontal,
  73.                                                 Range32 vertical ) const
  74.           {
  75.             return Point32( BestRevealedLeft( horizontal ),
  76.                                  BestRevealedTop( vertical ) );
  77.           }
  78.         
  79.         static const SuggestsPaneSize& Zero();
  80.         static const SuggestsPaneSize& LargestPossible();
  81.         static const SuggestsPaneSize& SmallestPossible();
  82.   };
  83.  
  84. #endif
  85.